/**
 * @file wa_image.h
 * 
 */

#ifndef _WA_IMAGE_H
#define _WA_IMAGE_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
 *      INCLUDES
 *********************/
#include "wa_conf.h"
#include <string.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include "wa_misc.h"
/*********************
 *      DEFINES
 *********************/

/**********************
 *      TYPEDEFS
 **********************/
	
typedef enum
{
	WA_IMAGE_TYPE_NONE,
	WA_IMAGE_TYPE_BITMAP,
}wa_image_type;

typedef enum
{
	WA_BITMAP_TYPE_INSIDE,
	WA_BITMAP_TYPE_OUTSIDE,
}wa_bitmap_type;
	
typedef struct _wa_bitmap
{
	wa_bitmap_type type;
	uint32_t width;
	uint32_t height;
	uint8_t* data_p;

	uint8_t* (*get_data_from_outside)(struct _wa_bitmap* bitmap);
}wa_bitmap;

/**********************
 * GLOBAL PROTOTYPES
 **********************/

uint32_t wa_bitmap_get_width(wa_bitmap* bitmap);
uint32_t wa_bitmap_get_height(wa_bitmap* bitmap);
uint8_t* wa_bitmap_get_data(wa_bitmap* bitmap);

/**********************
 *      MACROS
 **********************/


#ifdef __cplusplus
} /* extern "C" */
#endif

#endif
